package com.example.myapplication.control;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import com.example.myapplication.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class ListViewActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);
        // 比如上面的布局，有 4 个内容需要填充，则对应的数据源应该是

        // 具体的实现方法：
        List<HashMap<String,Object>> listData = new ArrayList();
        String[] name = new String[]{"小明","小华","小赵","小王"};
        int[] age = new int[]{15,16,17,18};
        int[] height = new int[]{180,179,174,177};
        int[] picture = new int[]{R.drawable.apple,R.drawable.apple,R.drawable.apple, R.drawable.ic_launcher_foreground};
        for(int i =0;i<name.length;i++){
            HashMap<String,Object> hashMap = new HashMap<>();
            hashMap.put("name",name[i]);
            hashMap.put("age",age[i]);
            hashMap.put("height",height[i]);
            hashMap.put("picture",picture[i]);
            listData.add(hashMap);
        }
        // 将 hashMap 的 key 组成一个字符串数组
        String[] form = new String[]{"name","age","height","picture"};
        // 将 item 布局中的 view 的 id 组成一个数组，要和 form 对应
        int[] to = new int[]{R.id.tv_one,R.id.tv_two,R.id.tv_three,R.id.tv_four};
        SimpleAdapter simpleAdapter = new SimpleAdapter(this,listData,R.layout.activity_list_view,form,to);
        ListView listView = findViewById(R.id.lv);
        listView.setAdapter(simpleAdapter);

    }


    /**
     * 学习目标
     * 1、熟悉Android开发的过程（环境搭建--->开发工具下载--->新建项目--->运行项目）
     * 2、熟悉Android Studio软件的使用
     * 3、熟悉Android项目工程结构以及具体包名所代表的含义
     * 4、学习Android中的基本表单控件（TextView,Button,ImageView,EditTxt,RadioButton,*Bar）,重点学习ListView（适配器填充数据）。
     * 5、学习Android中的相关布局，重点学习线性布局，相对布局，表格布局，网格布局和事件的监听并编写表单控件代码来测试运行
     *
     * 学习收获：
     * 1、熟悉了Android开发的过程以及工程结构。
     * 2、熟悉了基本的布局的使用以及不同布局的设置方式
     * 3、熟悉了事件的监听方式，通过点击表单上的布局控件来实现不同的触发事件。
     *
     * 明天安排：
     * 学习activity的使用，生命周期以及数据之间的传递和使用场景等。
     */

    /**
     * 学习目标
     * 1、学习activity组件的使用，了解其生命周期以及在不同周期所执行的内容（使用场景）
     * 2、学习不同activity之间数据的传输方式以及跳转（Intent意图的使用）
     * 3、了解activity的启动模式原理以及所使用的不同场景
     * 4、编写代码测试以上所学的知识。
     *
     * 学习收获：
     * 1、熟悉了activity组件的基本使用以及了解其生命周期
     * 2、了解了各个activity之前的数据传输以及页面是跳转方式
     *
     * 明天安排
     * 总结activity的东西，学习组件广播 BroadcastReceiver，编写代码测等
     *
     * 早上来时地铁人好多，下了地铁差不多8点50左右，取了早点，咖啡，饼裹菜，油条，粥，今天还是在学习，感觉进度还行，
     * 就是安卓开发的流程还是不太清楚，先分散学吧，到时候直接看完整项目就行。下午一如既往干到9点多。只要双休在就好。
     */

    /**
     * 学习目标
     * 1、学习BroadcastReceiver组件的内容以及使用方式并且编写代码来测试
     * 2、区分了解广播的注册方式（静态，动态）以及广播类型（标准，有序广播）
     * 3、了解广播的使用场景（主要是消息通讯）
     *
     * 学习收获：
     * 1、了解了广播组件的使用以及常用的注册方式
     * 2、了解了广播的使用场景并且会简单的使用广播发布消息和接收消息。
     *
     * 明天安排
     * 学习Fragment（碎片）的生命周期和使用以及Fragment于Activity之间的数据传输
     *
     * 早上来取了肯德基早点，芝士奶酪鸡肉面包味道不咋地，还是饼好吃有点贵，以后就尽量省点钱，中午
     * 去了下面的美食街吃了一份米皮，花了13.9元，物价就是贵啊，以后中午尽量少吃，来时候带点吃的，
     * 下午饿了垫吧一点。下午在拼多多买了零食。哎，这周务必看好房子。尽量找二居的，三居也行。
     */

    /**
     * 学习目标
     * 1、了解fragment的生命周期
     * 2、了解如何在activity嵌入一个或多个fragment
     * 3、学习activity和fragment之前的通讯方式，并且编码来实现数据的传输
     *
     * 学习收获
     * 1、了解了activity和fragment之前的关系以及他们之间的通讯方式
     * 2、编码实现了activity和fragment之前的数据传输
     *
     * 明天安排
     * 回顾本周所学习的知识以及做好对知识的总结
     *
     * 今个是周四，明天有个伙计来京了，也算是有个伴了，周末出去找房子，明天做好对本周的学习总结。加油。看来那个国家
     * 信息安全的offer没戏了。
     */


}